[% setvar title The Perl 6 Summary for the Week Ending 20020908 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the Week Ending 20020908'></a><h1>The Perl 6 Summary for the Week Ending 20020908</h1>
<p>Well, what a week it's been eh people? Larry's been telling the
Slashdot crowd about quantum God and big knobs, there's been a call
for Perl 6 programmers on Perlmonks
(<a href='http://makeashorterlink.com/?L51631EB1),' target='_blank'>makeashorterlink.com</a> and the Octarine
parrot took flight.</p>
<p>So, let's start with perl6-internals, as is traditional.</p>
<a name='The Octarine Parrot flies!'></a><h2>The Octarine Parrot flies!</h2>
<p>Jeff Goff (who deserves to suffer for his parody of <i>Eight Days a
Week</i>) announced Parrot 0.0.8, available from the usual places. This
release includes:</p>
<ul>
<li><a name='Working Perl 6 rules/patterns'></a>Working Perl 6 rules/patterns</li>
<li><a name='Multidimensional keyed access'></a>Multidimensional keyed access</li>
<li><a name='JIT for ARM processors'></a>JIT for ARM processors</li>
<li><a name='Lexical scope operators'></a>Lexical scope operators</li>
<li><a name='Many bugfixes and smaller subsystems'></a>Many bugfixes and smaller subsystems</li>
</ul>
<p>Mere moments after announcing the new baby, Jeff realised he'd made a
mistake with the tarball's MANIFEST, and announced the release of
Parrot 0.0.8.1, which has all the same features as 0.0.8, but a
MANIFEST error has been excised. MANIFEST seems to be a source of
problems, as Tanton Gibbs also had problems with it later in the week.</p>
<p><a href='http://makeashorterlink.com/?A16623DA1' target='_blank'>makeashorterlink.com</a> -- Announcement</p>
<p><a href='http://www.cpan.org/src/parrot-0.0.8.1.tgz' target='_blank'>www.cpan.org</a> -- Tarball</p>
<a name='Goal call for 0.0.9'></a><h2>Goal call for 0.0.9</h2>
<p>Soon after the 0.0.8 announcement Dan asked us what we wanted to see
in 0.0.9 and offered his list. The list became rather long as Sean
O'Rourke, Steve Fink and Nicholas Clark all chipped in
suggestions. The `long' list ended up as:</p>
<ul>
<li><a name='Exceptions'></a>Exceptions</li>
<li><a name='Initial PMC freeze/thaw API'></a>Initial PMC freeze/thaw API</li>
<li><a name='Sub indicators in bytecode'></a>Sub indicators in bytecode</li>
<li><a name='On-the-fly bytecode section generation'></a>On-the-fly bytecode section generation</li>
<li><a name='Methods (in PASM and C)'></a>Methods (in PASM and C)</li>
<li><a name='Implementation of some methods for the Perl classes'></a>Implementation of some methods for the Perl classes</li>
<li><a name='Stashes'></a>Stashes</li>
<li><a name='Resolve the prompt finalization problem'></a>Resolve the prompt finalization problem</li>
<li><a name='PMC name, implementation cleanup(*)'></a>PMC name, implementation cleanup(*)</li>
<li><a name='Filename, line number tracking'></a>Filename, line number tracking</li>
<li><a name='Careful elimination of compiler warnings'></a>Careful elimination of compiler warnings</li>
<li><a name='Rationalization of bytecode generation'></a>Rationalization of bytecode generation</li>
</ul>
<p>(*) The PMC issue was brought up by Steve. He pointed out that right
now we have a situation where theoretically language independent PMCs
often refer to, and create, Perl specific PMCs on the fly, which seems
slightly wrong.</p>
<p><a href='http://makeashorterlink.com/?S12652EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?I13662EB1' target='_blank'>makeashorterlink.com</a> -- Steve's
list</p>
<a name='Approximate string matching in regexes'></a><h2>Approximate string matching in regexes</h2>
<p>Sean O'Rourke discoursed on edit distances and approximate matching,
and offered a patch implementing an <code>rx_amatch</code> opcode.</p>
<p><a href='http://makeashorterlink.com/?U24663EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='More regex stack manipulations'></a><h2>More regex stack manipulations</h2>
<p>Sean also implemented a couple of opcodes for manipulating the regex
engine's stack: <code>rx_stackdepth Ix</code> and <code>rx_stackchop Ix</code>. Dan
thought that the semantics of <code>rx_stackchop</code> were slightly off, and
that the instructions were actually intstack specific and should
therefore be called <code>intstackdepth</code> and <code>intstackchop</code>
respectively. Dan is also `really, <i>really</i> close to tossing the last
pretense of being a stack-based system and [moving] all the way to
routine-based frames instead, which would definitely make some things
easier.' (Whatever that means). Sean and Steve Fink both seemed to
think that that may be a step too far, at least for something as
backtrack heavy as the regex core. Steve thought he would rather not
create a few thousand Exception or Continuation objects and also
made noises about encapsulating <b><i>intstack.c</i></b>'s functionality in an
appropriately named PMC.</p>
<p>Later in the week, Steve delivered his patch to provide an integer
array PMC, but wondered if it shouldn't be called an integer dequeue
(a double ended queue). John Porter voted for dequeue. Leopold Toetsch
wondered why the patch needed a pair of new ops, and questioned the
entire premise of the patch, so Steve mounted a sterling defence of
his patch.</p>
<p><a href='http://makeashorterlink.com/?P25663EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?J16621EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='core.ops ARGDIR'></a><h2><b><i>core.ops</i></b> ARGDIR</h2>
<p>Leopold Toetsch kicked off a discussion of `the intended meaning of
ARGDIR_IN/OUT'. I'm afraid to say that while I understand the
individual words in his message, I don't really understand the post
as a whole. Which is my own fault, and makes life rather hard for a
summarizer. However, Nicholas Clark and Angel Faus seemed to
understand him, and discussion ensued.</p>
<p><a href='http://makeashorterlink.com/?D27621EB1' target='_blank'>makeashorterlink.com</a> -- Thread starts here.</p>
<a name='Parrot: maximizing the audience'></a><h2>Parrot: maximizing the audience</h2>
<p>Jerome Quelin put the cat among the pigeons when he made a few
observations about the perlcentricity of Parrot, and wondered what
the benefits of making Parrot more explicitly vendor neutral. Jerome
wondered `what could <i>we</i> do in order to open parrot to non-Perl
centric people?'</p>
<p>Markus Lair suggested renaming perl6-internals to `something better
like &quot;parrot internals&quot;'. Sean O'Rourke wondered what effect this would
have, apart from breaking his procmail setup. Dan thinks we'll
probably shift to a more neutral list name eventually. John Porter
claimed that `some folks seem to think that sufficient reason [to
change] exists now.', and Dan pointed out that John didn't have to
convince `some folks', he had to convince Dan. John then attempted to
invoke Larry.</p>
<p>John Porter reckoned that changing the list name would have &quot;a huge
psychological effect, at least outside our tight little club.  But if
that's only as far as you can see...&quot;; Dan responded with admirable
restraint.</p>
<p>Steve Fink is surprised at how little Parrot is tied to Perl 6, and
noted that Perl 6 `mostly provides evidence that this isn't just an
exercise in intellectual masturbation', and came down in favour of
renaming the mailing list.</p>
<p>Ask Bjoern Hansen popped his head up to say that it would soon be
relatively easy to change the list name to, say,
'<a href='mailto:dev@parrotcode.org'>dev@parrotcode.org</a>'.</p>
<p>Andrew Kuchling, one of the python-dev crew, popped in to talk about
<b><i>parrot-gen.py</i></b>, and why it's not being heavily developed. (From his
point of view, the mailing list name is an irrelevancy BTW). Andrew
made some good points about the fun and benefits of Parrot from the
point of view of a Pythoneer (it isn't much fun, mostly because of
the culture shock and that there don't appear to be any real benefits apart
from the possibly chimerical cross-language stuff), and worried about
the amount of optimization that was going on before we'd got any real
languages implemented. Andrew also suggested making Scheme one of the
driving languages for Parrot, based on its simple syntax and fully
specified semantics.</p>
<p>As a result of all this, Dan posted his list of `Parrot long-term
goals/prospects', a 9 point list, with footnotes about where he sees
things going. I'm not going to summarize it because it's already its
own summary. Read it. There was some discussion about what the
eventual `pure parrot' build environment will look like, including
some optimistic copyright lines...</p>
<p><a href='http://makeashorterlink.com/?G48625EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?E59651EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?J2A632EB1' target='_blank'>makeashorterlink.com</a> -- A Pythoneer speaks</p>
<p><a href='http://makeashorterlink.com/?B2B631EB1' target='_blank'>makeashorterlink.com</a> -- Dan's list</p>
<a name='Implementation of Lists for languages/scheme'></a><h2>Implementation of Lists for languages/scheme</h2>
<p>J&uuml;gen B&ouml;mmels offered a patch implementing Scheme pairs,
using simple Arrays. Dan was impressed, and wondered how far we were
from 'real' scheme. J&uuml;rgen thinks we're quite some way away; we
still need symbols, strings, lexicals, functions, macros,
continuations... Piers Cawley outlined an OO way forward using
(initially) hashes, and proposed a 'SchemeObject' PMC, which would
hide a lot of the common structural code needed for dispatching
methods implemented in any of C/Parrot/Scheme.</p>
<p><a href='http://makeashorterlink.com/?O2C651EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Teasing notes'></a><h2>Teasing notes</h2>
<p>Dan announced that he was about to go dark for a while as a deadline
of his had just got a lot closer. However, he dropped a list of hints
about what was forthcoming. Bryan asked for some clarification of a
few hints (but they're <i>hints</i>, they're supposed to be a bit vague),
and Dan went and spoiled the mystery by giving him some.</p>
<p><a href='http://archive.develooper.com/perl6-internals@perl.org/msg12475.html' target='_blank'>archive.develooper.com</a></p>
<a name='Tinderbox turning green'></a><h2>Tinderbox turning green</h2>
<p>Andy Dougherty noted that the recent work on portability and general
lint gathering meant that we were well on the way to a green tinderbox
(ie: automated builds are mostly working, yay!). Dan thought that gave
him an ideal opportunity to break things again by adding exceptions to
the mix. <i>Andy</i> then went a bit red, for assorted and faintly
embarrassing reasons: the patch that was meant to turn things green
had been applied and then inadvertently backed out. There's a moral
here somewhere.</p>
<p>Actually there was a spate of inadvertent unpatching last week. People
are embarrassed and hopefully putting procedures in place to avoid
another spate.</p>
<p><a href='http://makeashorterlink.com/?E6E631EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Perl 6 miscellany'></a><h2>Perl 6 miscellany</h2>
<p>Steve Fink offered a portmanteau patch for the Perl 6 compiler,
including such delights as a '-e' flag to perl6 so the one line script
folks could play. (First person to do the RSA one-liner in Perl 6 gets
<i>much</i> kudos from me). Sean wondered about a few of the other fixes,
and between them he and Steve found and squashed a bug with here docs,
and discussed ways of getting working Perl 6 patterns up and running.</p>
<p><a href='http://makeashorterlink.com/?Z6F654EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>Garrett Goebel reopened the `auto deserialization' thread from last
week (which ended up with the concept of <code>my Date $date .= new('June 25, 2002')</code> as the Damian approved idea). Garrett's
confusion seemed to hang on whether <code>my Date $date</code> and <code>my Date $date = Date-&gt;new()</code> were equivalent. If they were, then a
class which implemented its own <code>operator:=</code> method could arrange
things so that the originally proposed <code>my Date $date = 'June 25, 2002'</code> would work.</p>
<p>Miko O'Sullivan proposed that, in the absence of a method name, <code>.=</code>
should automagically call a <code>new_from_[class of object being passed]</code>, noting that golfers would love it. The consensus seems to be
against this particular bit of DWIMmery.</p>
<p>A subthread of this mammoth thread concerned multimethod
dispatch. David Wheeler wanted to know what it was, so Dan explained,
and Damian pointed at a Perl Journal article on the subject. This
subthread ended up spawning its own thread, where Miko wondered if
multi dispatch/overloading implied anything about
runtime/compiletime. Dan thought not, and said it was dependent on the
language.</p>
<p>Quote of the thread: &quot;I can still remember the precise moment I first
fell in love with polymorphism.&quot; -- Damian, in the TPJ article referred
to.</p>
<p><a href='http://makeashorterlink.com/?B10721EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?N61742EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?H12722EB1' target='_blank'>makeashorterlink.com</a> -- multimethods?</p>
<p><a href='http://makeashorterlink.com/?X53743EB1' target='_blank'>makeashorterlink.com</a> -- TPJ article</p>
<p><a href='http://makeashorterlink.com/?R24712EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Class aliasing'></a><h2>Class aliasing</h2>
<p>The `auto deserialization' thread also spawned a discussion of Class
aliasing, but declined to change its subject line, making the life of
a summarizer <i>so</i> much easier...</p>
<p>Last week, Damian had proposed doing <code>class Date is
Really::Long::Package::Name::Ugh</code>, ie. subclassing the long name
into a handy short name. Everyone else seemed to think he was
proposing aliasing a class name (which Damian later denied).</p>
<p>Uri Guttman certainly thought that Damian was talking about lexical
aliasing of classes (my mailer picks his post as this week's base for
this particular subthread). Trey Harris thought that Damian was
talking about subclassing, and proposed <code>my class Date is
Really::Long::Package::Name::Ugh</code>, which introduces a lexically scoped
subclass. Nicholas Clark wondered if <code>class Date :=
Really::Long::Package::Name::Ugh</code> would express aliasing of
classes. Damian thought it probably would, but noted that Larry hasn't
said a definite 'yes' to class name aliasing.</p>
<p>Brent Dax wondered if classes weren't in danger of becoming the `&quot;new
filehandles&quot; -- relatively limited entities with no sigils that
confuse the syntax horribly.' and pointed out an ambiguous case.</p>
<p>David Wheeler apologised to everyone for confusing inheritance and
aliasing in the first place, and the thread wound down to a close.</p>
<p><a href='http://makeashorterlink.com/?D25752EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='@array = %hash'></a><h2><code>@array = %hash</code></h2>
<p>Another thread from last week that rumbled on into this one.</p>
<p>The discussion of when hashes could have pairs as keys wouldn't go
away. Damian says that the <code>%hash = (...)</code> case is syntactic
sugar and that having a pair in an even slot of such a list would
probably be an error. I assume that this also applies in the case of
<code>%hash = @array</code>.</p>
<p>In a subthread, Piers Cawley told David Whipp that he hadn't actually
been joking when he proposed implementing the entire Smalltalk
Collection hierarchy and making it available in core Perl 6. Luke
Palmer liked the idea too. Dan saw no reason why such a thing should
be impossible either...</p>
<p><a href='http://makeashorterlink.com/?A36721EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?T37723EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Atomicness and \n'></a><h2>Atomicness and <code>\n</code></h2>
<p>Last week Damian reminded us of <code>$roundor7 =
rx/&lt;&lt;roundascii&gt;+[17]&gt;/</code>, and Brent Dax wondered how one could be
sure that <code>&lt;roundascii&gt;</code> is a character class. Luke wondered if
it mattered. The thread eventually led Aaron Sherman to make a few
proposals about user defined character classes in regular
expressions. Deborah Ariel Pickett wondered why we still used <code>?</code> for
non-greedy quantifiers, citing teachability reasons for why we
shouldn't.</p>
<p><a href='http://makeashorterlink.com/?F28722EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?Y29713EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?P2A752EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Hypothetical variables and scope'></a><h2>Hypothetical variables and scope</h2>
<p>Aaron Sherman announced that he was working on a library of rules and
subroutines for dealing with UNIX system files, mostly as mental
exercise to help with his understanding of Perl's new pattern
features. He wondered, in particular, about the scoping of
hypothetical variables in the presence of lexicals of the same
name. For some reason this turned into a minor argument about whether
<code>my $x; / (\S*) { let $x = .pos } \s* foo /</code>, from Apocalypse 5,
was a typo for <code>my $x; / (\S*) { let $x := .pos } /</code>. I'm not
going to try to summarize the argument.</p>
<p><a href='http://makeashorterlink.com/?U3B725EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Argument aliasing for subs'></a><h2>Argument aliasing for subs</h2>
<p>Pete Behroozi wondered about syntax for `allowing subroutines to have
many different names for the same argument', citing CGI.pm as an
example of such code in Perl 6. Damian thought that if it were
allowed, it would be done with properties <code>sub hidden (..., int
$force is aka($override) ) {...}</code>, (well, he did after he realised
that his first post on this issue was the result of posting after
travelling 14,000 miles and giving 93 hours of talks in the space of
18 days, and was somewhat flawed).</p>
<p>All this cunning use of <code>is</code> led Erik Steven Harrison (who should fix
his mailer so it does References or In-Reply-To properly) to wonder if
properties weren't being a little overused, and wondered if the is/but
distinction was still around. Damian thought not, and reiterated the
difference between <code>is</code> and <code>but</code>, and when you would use each of
them. Erik also wondered what was wrong with <code>sub hidden ( int
$force := $override ) {...}</code>. Damian pointed out that it didn't play
well with the defaulting operator, <code>//=</code>, in parameter
declarations.</p>
<p>Peter Behroozi got confused about the difference between <code>$foo is
named('baz')</code> and <code>$foo is aka($baz)</code>. (<code>named</code> changes the
externally visible name of a parameter, <code>aka</code> adds another external
name for the parameter).</p>
<p>The thread then morphed into a discussion of runtime and compiletime
properties. If you've not seen such a discussion before, the whole
thread is worth reading.</p>
<p><a href='http://makeashorterlink.com/?R5C741EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Perl 6 parser, built in rules, etc.'></a><h2>Perl 6 parser, built in rules, etc.</h2>
<p>Erik Steven Harrison wondered about backward compatibility issues with
changing Perl 6's grammar when the grammar rules are so exposed to the
user. Sean O'Rourke didn't think it was an issue yet. Dan told us that
the eventual Perl 6 grammar would be maintained in a backward
compatible way, with documented places for adding changes, and that
this would be maintained for as long as Larry said so.</p>
<p><a href='http://makeashorterlink.com/?A6D721EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='regex args and interpolation'></a><h2>regex args and interpolation</h2>
<p>David Whipp confused the heck out of me when he asked about `regex
args and interpolation'. I confess I can't for the life of me see what
the issue is that he's trying to get at. Ken Fox seemed to understand
him though, but wanted to know what the rule was that he was using in
his example code, and proposed a couple of implementations of
it. Nicholas Clark wondered about a section of Ken's post:</p>
<pre>    { use grammar Perl::AbstractSyntax;
      $0 := (expr (invoke 'new (class 'Date) $1 $2 $3))) }</pre>
<p>Specifically, what was that S-expression doing there? Piers Cawley
pointed out that S-expressions were a concise way of writing out an
AST's structure. Nick agreed, but pointed out that it was still in the
middle of a stream of Perl, but worked out that the <code>use grammar
Perl::AbstractSyntax</code> part of Ken's code meant that all bets were
off. At this point Nick's head threatened to explode at the
wonderfulness of it all.</p>
<p><a href='http://makeashorterlink.com/?K1E762EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Defaulting params (reprise)'></a><h2>Defaulting params (reprise)</h2>
<p>Miko O'Sullivan doesn't like <code>sub foo ( $arg //= 1 ) {...}</code> for specifying default values for function arguments. He would
rather have <code>sub foo ( $arg is default(1) ) {...}</code>. Damian
pointed out that <code> is default(...) </code> would be a compiletime only
thing, which didn't necessarily make sense.</p>
<p><a href='http://makeashorterlink.com/?D2F712EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='Hypotheticals again'></a><h2>Hypotheticals again</h2>
<p>Jonathan Scott Duff wondered some more about hypotheticals and
<code>let</code>. He wanted to know whether hypothetically binding to a
lexically scoped variable would also introduce that name into the
match object. A strict reading of Apocalypse 5 suggests that that
isn't the case, which, Jonathan points out, causes the programmer a
few headaches. Damian agreed that he'd like to see <code>$0</code> contain keys
for all the hypotheticals used in a match, whether they came from the
lexical scope or not. Damian would also like them to turn up in
<code>$o{'$name_with_dollar'}</code> as well. So, it seems that everyone's
assumptions are aligned and we can carry on.</p>
<p><a href='http://makeashorterlink.com/?Z20821EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='First crack at Builtins.p6m'></a><h2>First crack at Builtins.p6m</h2>
<p>Aaron Sherman decided that what the world needs now is, at least, a
set of function signatures for everything that's in perl5's perlfunc
listing. He's even had a crack at implementing those functions where
possible. Aaron points out that he thinks of this file as
documentation, not code. People were impressed, and there's talk of
using it to compile down to the IMCC input as a base for hand
optimizing. Aaron also released a second version with more functions
implemented and a slightly different organization.</p>
<p><a href='http://makeashorterlink.com/?U31821EB1' target='_blank'>makeashorterlink.com</a></p>
<p><a href='http://makeashorterlink.com/?E32812EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='More A5/E5 questions'></a><h2>More A5/E5 questions</h2>
<p>Jonathan Scott Duff asked a bunch of questions about the pattern
engine, and got a bunch of answers.</p>
<p><a href='http://makeashorterlink.com/?R33822EB1' target='_blank'>makeashorterlink.com</a></p>
<a name='In brief'></a><h1>In brief</h1>
<p>Leon Brocard wondered if the concatenation bug was fixed yet...</p>
<p>Leon also offered a patch implementing <code>chr</code>, reckoning that if we
have <code>ord</code>, then symmetry demands <code>chr</code>. Dan applied it, and Jerome
Quelin found a bug in his Befunge-93 interpreter which he thought was
a bug in the chr implmentation, but turned out not to be.</p>
<p>The Perl 6 compiler now does interpolated strings. Kudos to Joseph
Ryan.</p>
<p>Josef H&ouml;&ouml;k had a problem with <code>key_next</code> not behaving as
expected within multiarray.pmc. Tom Hughes pointed where expectation
and reality differed, and harmony was restored.</p>
<p>Kevin Falcone patched the glossary to include a definition of ICU.</p>
<p>Mike Lambert is having problems with the Perl 6 compiler under
Windows. Sean O'Rourke can't duplicate the problem. Anyone else tried
this? More information is welcome.</p>
<p>Ken Fox and Damian continued their discussion of how one would munge
the current Perl 6 grammar.</p>
<p>John Williams wondered about doing reduce with <code>^+=</code>. Damian can't
remember what side he argued when it came up last October, but is now
of the opinion that John's suggestion is a good idea.</p>
<p>Mr Nobody suggested some changes to the Apocalypse 5 pattern syntax
for reasons of length. Consensus seems to be that these changes aren't
a good idea.</p>
<a name='Who's who in Perl 6'></a><h1>Who's who in Perl 6</h1>
<ul>
<li><a name='Who are you?'></a>Who are you?</li>
<p>I'm Dan and ... I design virtual machines.</p>
<li><a name='What do you do for/with Perl 6?'></a>What do you do for/with Perl 6?</li>
<p>I'm designing the virtual machine to compile and run it.</p>
<li><a name='Where are you coming from?'></a>Where are you coming from?</li>
<p>A place about 70 miles east of here.</p>
<p>I started fiddling with computers with an Atari 800 (fully decked out
with a massive *48*K of RAM!) a long, long time ago. That lead me to
Atari BASIC, then to 6502 assembly, then to Forth. Then (briefly) to
college and Pascal and PL/I running under VM/CMS on an OS/370 system.</p>
<p>&gt;From there I bounced to COBOL (on both RSTS/E and OS/370) and OS/370
assembly, and then to C under RSTS/E. I disliked C on first sight (so
of course that's what I spend most of my life writing now), and it
didn't get any better on my Amiga, though AREXX there was rather
nice. Wrote an article on AREXX for one of the now-dead Amiga
magazines, too.</p>
<p>My first real job in the industry was maintaining a horrid app written
in BASIC on RSTS/E (with the new bits written in BASIC/PLUS 2.6, which
was a nice dialect of BASIC, and something I still like better than C)
and helping write a new system in Progress on Unix boxen. (DG AViiON
systems with the 88K series processor. Now there was a sweet, and alas,
now dead, RISC processor)</p>
<p>That lead to writing C and SQL code on a VMS system, at which point my
fate was sealed, and I've been doing VMS admin and programming ever
since.</p>
<p>I first encountered Perl when looking for a guestbook for a webserver
we were running on one of the VMS boxes. It was, of course, written in
Perl, which meant grabbing a copy of perl. It was one of the 5.003_9x
releases, and since Dec C was significantly pickier than any other C
compiler at the time, I started shooting patches for it to Chip.</p>
<p>That lead to my first XS module, and then to the second, and third
(and eighth, and tenth, and...). Oddly enough, I wrote my first piece
of Perl code about six months after my first patch to the perl core
(Charles Bailey wrote the Perl pieces for the first module I did, and
chunks of the XS) I ended up with the VMS maintenance hat for a while,
which has since been passed on, and I got snared by the fun that was
the first threading attempt for 5.005.</p>
<p>I ended up volunteering to coordinate the Perl 6 development at TPC 4,
since everyone more competent had the good sense to run screaming away
from the job, and I've had it ever since.</p>
<li><a name='When do you think Perl 6 will be released?'></a>When do you think Perl 6 will be released?</li>
<p>When it's done.</p>
<li><a name='Why are you doing this?'></a>Why are you doing this?</li>
<p>Beats the heck out of me. Someone's got to.</p>
<li><a name='You have 5 words. Describe yourself.'></a>You have 5 words. Describe yourself.</li>
<p>Tall enough, under the circumstances.</p>
<li><a name='Do you have anything to declare?'></a>Do you have anything to declare?</li>
<p>Yes, absolutely.</p>
</ul>
<a name='Acknowledgments'></a><h1>Acknowledgments</h1>
<p>This summary is dedicated to the memory of Gizmo, a cat of great
character, who we had to have put down on Saturday at the age of 17.</p>
<p>Chris Ball, Mark Fowler and Pete Sergeant helped with proofreading
this week. Thanks chaps.</p>
<p>Once again, if you like the summary, please consider giving money to
the Perl Foundation at <a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- your
money will go to help fund the ongoing development of Perl 6.</p>
<p>This week's summary was, once again sponsored by the O'Reilly Network
who are paying the publication fee for the article directly to the
Perl Foundation.</p>
</div>
